
#include  "stdint.h"


#ifndef	_BSW_SYSTEMSERVICE_OS_CFG_
#define	_BSW_SYSTEMSERVICE_OS_CFG_

/********************************************************************************************************************
|   Other Header File Inclusion
|*******************************************************************************************************************/
#include "Type.h"
/********************************************************************************************************************
|   Compile Option Or Configuration Section (For Test/Debug)
|*******************************************************************************************************************/

/********************************************************************************************************************
|   Macro Definition
|*******************************************************************************************************************/
// USER CFG BEGIN

#define	TASK_TIME_CONSUMIN				0U			//任务耗时测量条件编译宏	0 for not and 1 for yes

#define	U8_ALWAYS_RUN					(255U)		/*任务运行次数无限制*/
#define	U16_TIMER_BASE					(1U)		/*定时任务时基1ms*/
#define	U16_TIMER_TOP					(60000U)	/*定时任务计时最大值60S*/

// USER CFG END

/********************************************************************************************************************
|   Enum Definition
|*******************************************************************************************************************/

/********************************************************************************************************************
|   Typedef Definition
|*******************************************************************************************************************/
// USER CFG BEGIN

//任务名称，需要用户根据需求修改 ，对应 User.C 中的函数
typedef enum	TaskName
{
	TIMER_TASK_1MS = 0U,
	TIMER_TASK_5MS_A,
	TIMER_TASK_5MS_B,
	TIMER_TASK_10MS_A,
	TIMER_TASK_10MS_B,
	TIMER_TASK_50MS,
	TIMER_TASK_100MS,
	TIMER_TASK_200MS,
	TIMER_TASK_500MS,
	TIMER_TASK_NAME_DEFINITION_END,
}e_TaskNameType;							/*任务名*/

// USER CFG END


typedef	struct	TimerSchedulerCfg			/*定时任务调度表配置结构体*/
{
	e_TaskNameType		e_TaskName;			/*任务名*/
	u8	ui8_TaskRunCount;				/*任务运行次数*/
	u32	ui8_TaskTickExpect;				/*任务预期运行时间*/
	u32	ui32_TaskTickOffset;			/*任务计时节拍偏移量*/
	void	(*pf_TimerScheduleTask)(void);	/*任务地址*/
}st_TimerSchedulerCfgType;


/********************************************************************************************************************
|   Global Variables With Extern Linkage
|*******************************************************************************************************************/
extern	const	st_TimerSchedulerCfgType st_TimerSchedulerCfg[TIMER_TASK_NAME_DEFINITION_END];	//定时调度表配置

/********************************************************************************************************************
|   Global Function Prototypes
|*******************************************************************************************************************/


#endif



